[IA64] fix to translate_phy_pte()
authorIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 24 Oct 2008 02:47:29 +0000 (11:47 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 24 Oct 2008 02:47:29 +0000 (11:47 +0900)
mfn_valid makes sure whether the pfn in question is a normal page.

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
xen/arch/ia64/vmx/vtlb.c

index da8f877764c7ad9a070031e3dd0fbcdb08a35a5e..9dda7af9c01dbefda53dcff7e05cb0b63fbeff7e 100644 (file)
@@ -522,7 +522,7 @@ static u64 translate_phy_pte(VCPU *v, u64 pte, u64 itir, u64 va)
      * which is required by vga acceleration since qemu maps shared
      * vram buffer with WB.
      */
-    if (phy_pte.ma != VA_MATTR_NATPAGE)
+    if (mfn_valid(maddr >> PAGE_SHIFT) && phy_pte.ma == VA_MATTR_NATPAGE)
         phy_pte.ma = VA_MATTR_WB;
 
     maddr = ((maddr & _PAGE_PPN_MASK) & PAGE_MASK) | (paddr & ~PAGE_MASK);